package com.hsjk.szwj.module.smedia.controller.admin.production.vo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/07/06 09:32
 **/
@NoArgsConstructor
@Data
public class EditingProjectMaterialsRespVO {

    private String requestId;
    private String projectId;
    private List<MediaInfosDTO> mediaInfos;
    private List<LiveMaterialsDTO> liveMaterials;
    private List<String> projectMaterials;

    @NoArgsConstructor
    @Data
    public static class MediaInfosDTO {
        private String mediaId;
        private MediaBasicInfoDTO mediaBasicInfo;
        private List<FileInfoListDTO> fileInfoList;

        @NoArgsConstructor
        @Data
        public static class MediaBasicInfoDTO {
            private String mediaId;
            private String inputURL;
            private String mediaType;
            private String businessType;
            private String source;
            private String title;
            private String description;
            private String category;
            private String mediaTags;
            private String coverURL;
            private String userData;
            private String snapshots;
            private String status;
            private String transcodeStatus;
            private String createTime;
            private String modifiedTime;
            private String deletedTime;
            private String spriteImages;
        }

        @NoArgsConstructor
        @Data
        public static class FileInfoListDTO {
            private FileBasicInfoDTO fileBasicInfo;

            @NoArgsConstructor
            @Data
            public static class FileBasicInfoDTO {
                private String fileName;
                private String fileStatus;
                private String fileType;
                private String fileSize;
                private String fileUrl;
                private String region;
                private String formatName;
                private String duration;
                private String bitrate;
                private String width;
                private String height;
            }
        }
    }

    @NoArgsConstructor
    @Data
    public static class LiveMaterialsDTO {
        private String appName;
        private String streamName;
        private String domainName;
        private String liveUrl;
    }
}
